/**
 * @author Q
 * @create 2025-05-22-18:35
 */

/**
 * 4.Spring Web MVC 入门
 *      2.学习Spring MVC
 */
public class Test {
    public static void main(String[] args) {
        /**
         * 2.学习Spring MVC
         *      4.请求
         *          10.获取Cookie/Session
         *              1.Cookie
         *                  保存在客户手中的简单文件
         *              2.Session
         *                  服务器与用户产生对话，用来记录对话信息的对象
         *              3.Cookie与Session的区别
         *                  1.Cookie是客户端保存信息的一种机制，Session是服务器保存信息的一种机制
         *                  2.Cookie与Session通过SessionId进行关联，是两者之前的桥梁
         *                  3.Cookie与Session经常一起配合使用，但不是一定需要一起配合使用
         *                      1.Cookie保存一部分信息，但不一定要保存SessionId
         *                      2.Session传递信息也不一定需要使用Cookie也可以使用URL
         */
    }
    public static void main5(String[] args) {
        /**
         * 2.学习Spring MVC
         *      4.请求
         *              9.上传文件（使用MultipartFile类）
         *                  1.获取文件名称（file.getOriginalFileName()）
         *                  2.文件上传到指定路径(file.transferTo(new File("路径" + file.getOriginalFilename()));)
         */
    }
    public static void main4(String[] args) {
        /**
         * 2.学习Spring MVC
         *      4.请求
         *            8.获取URL中的参数
         *                  1.获取一个参数
         *                       @RequestMapping("/方法名/{参数名（必须有，不能为空）})
         *                       方法名(@PathVariable（注释） 参数类型 参数名)
         *                  2.获取多个参数
         *                      @RequestMapping("/方法名/{参数名（必须有，不能为空）}/{参数名（必须有，不能为空）}/....)
         *                      方法名(@PathVariable（注释有几个参数就必须有几个注释） 参数类型 参数名,@PathVariable（注释） 参数类型 参数名)
         *                  3.有多个同名方法名时，构成方法重载
         */
    }
    public static void main3(String[] args) {
        /**
         * 2.学习Spring MVC
         *      4.请求
         *          7.传递JSON数据
         *              1.概念：一种数据格式，有自己的格式和语法，使用文本来表示对象或数组的信息，所以本质是字符串，主要负责不同语言中进行数据交换/传递
         *              2.语法：
         *                  1.json使用键值对表示
         *                  2.数据通过,分割
         *                  3.[]表示数组
         *                  4.{}表示对象
         *                  5.值可以是对象，也可以是数组，数组可以包含对象
         *              3.JSON字符串与对象互转
         *                  1.对象转字符串（objectMapper.writeValueAsString(对象名)）
         *                  2.JSON字符串转对象（objectMapper.readValue(字符串,类名.class)，需要有空构造方法）
         *              4.JSON优点
         *                  1.简单易⽤: 语法简单，易于理解和编写，可以快速地进⾏数据交换
         *                  2. 跨平台⽀持: JSON可以被多种编程语⾔解析和⽣成, 可以在不同的平台和语⾔之间进⾏数据交换和传输
         *                  3. 轻量级: 相较于XML格式, JSON数据格式更加轻量级, 传输数据时占⽤带宽较⼩, 可以提⾼数据传输速度
         *                  4. 易于扩展: JSON的数据结构灵活，⽀持嵌套对象和数组等复杂的数据结构，便于扩展和使⽤
         *                  5. 安全性: JSON数据格式是⼀种纯⽂本格式，不包含可执⾏代码, 不会执⾏恶意代码，因此具有较⾼的安全性
         *              5.传递JSON对象
         *                  需要使用@RequestBody注解（注解会将前端的json转化为对象）
         */
    }
    public static void main2(String[] args) {
        /**
         * 2.学习Spring MVC
         *      4.请求
         *          6.传递集合
         *              和数组类似，但是需要使用@RequestParam进行绑定参数关系
         */
    }
    public static void main1(String[] args) {
        /**
         * 2.学习Spring MVC
         *      4.请求
         *          5.传递数组
         *              Spring MVC自动绑定参数的赋值
         */
    }
}
